
function getPosTop( i , j ){
    return 20 + i*120;
}

function getPosLeft( i , j ){
    return 20 + j*120;
}

function getNumberBackgroundColor( number ){ // 设置特定数字的背景颜色
    switch( number ){
        case 2:return "#eee4da";break;
        case 4:return "#ede0c8";break;
        case 8:return "#f2b179";break;
        case 16:return "#f59563";break;
        case 32:return "#f67c5f";break;
        case 64:return "#f65e3b";break;
        case 128:return "#edcf72";break;
        case 256:return "#edcc61";break;
        case 512:return "#9c0";break;
        case 1024:return "#33b5e5";break;
        case 2048:return "#09c";break;
        case 4096:return "#a6c";break;
        case 8192:return "#93c";break;
    }

    return "black";
}

function getNumberColor( number ){ //设置数字颜色:4以上为白色
    if( number <= 4 )
        return "#776e65";

    return "white";
}

function nospace( board ){ // 判断网格是否还有空格子：格子值是否为0

    for( var i = 0 ; i < 4 ; i ++ )
        for( var j = 0 ; j < 4 ; j ++ )
            if( board[i][j] == 0 )
                return false;

    return true;
}

function canMoveLeft( board ){ //判断是否还能左移:本身不为空的情况下，左边格子为空或者左边格子数字与自身相等

    for( var i = 0 ; i < 4 ; i ++ )
        for( var j = 1; j < 4 ; j ++ )
            if( board[i][j] != 0 )
                if( board[i][j-1] == 0 || board[i][j-1] == board[i][j] )
                    return true;

    return false;
}

function canMoveRight(board) {

    for( var i = 0 ; i < 4 ; i ++ )
        for( var j = 2; j >= 0 ; j -- )
            if( board[i][j] != 0 )
                if( board[i][j+1] == 0 || board[i][j+1] == board[i][j] )
                    return true;

    return false;
}

function canMoveUp(board) {
    
    for( var j = 0; j < 4 ; j ++ )
        for( var i = 1 ; i < 4 ; i ++ )
            if (board[i][j] != 0)
                if( board[i-1][j] == 0 || board[i-1][j] == board[i][j] )
                    return true;
    
    return false;
}

function canMoveDown(board) {
    
    for( var j = 0; j < 4 ; j ++ )
        for( var i = 2 ; i >= 0 ; i -- )
            if (board[i][j] != 0)
                if( board[i+1][j] == 0 || board[i+1][j] == board[i][j] )
                    return true;
    
    return false;
}

function noBlockHorizontal( row , col1 , col2 , board ){ //判断水平方向移动路径是否有障碍：看移动路径中的格子是否有不为空的
    for( var i = col1 + 1 ; i < col2 ; i ++ )
        if( board[row][i] != 0 )
            return false;
    return true;
}

function noBlockVertical(col, row1, row2, board) { //判断竖直方向移动路径是否有障碍
    for( var i = row1 + 1 ; i < row2 ; i ++ )
        if( board[i][col] != 0 )
            return false;
    return true;
}

function nomove(board) { //判断是否不可再移动，用于判断游戏是否结束
    if ( canMoveLeft(board) ||
         canMoveRight(board) ||
         canMoveUp(board) ||
         canMoveDown(board) ) 
        return false;

    return true;
}

